/*
 * Brazo.cpp
 *
 *  Created on: 02/10/2013
 *      Author: ezequiel
 */

#include "Brazo.h"

Brazo::Brazo() {
	this->extremidadSuperior = new ExtremidadBrazo();
	this->extremidadMedia = new ExtremidadBrazo();
	this->mano = new Mano();
}

Brazo::~Brazo() {
	this->extremidadSuperior->~ExtremidadBrazo();
	this->extremidadMedia->~ExtremidadBrazo();
	this->mano->~Mano();
}

void Brazo::render(GLuint handle, glm::mat4* matModelo) {
	GLfloat apartamiento = -50;
	glm::mat4 matriz = glm::rotate(*matModelo, apartamiento, glm::vec3(1.0, 0.0, 0.0));
	this->extremidadSuperior->render(handle, &matriz);
//	glm::mat4 matriz = glm::mat4 (1.0f);
	 apartamiento = 62;
	///extremidad media
	matriz = glm::translate(matriz, glm::vec3(0.0, 0.0, 2.65));
	matriz = glm::rotate(matriz, apartamiento, glm::vec3(1.0, 0.0, 0.0));
	this->extremidadMedia->render(handle, &matriz);
	///extremidad inferior
	apartamiento = 50;
	matriz = glm::translate(matriz, glm::vec3(0.0, 0.0, 2.65));
	matriz = glm::rotate(matriz, apartamiento, glm::vec3(1.0, 0.0, 0.0));
	this->mano->render(handle, &matriz);

}

void Brazo::render(GLuint handle) {
}

void Brazo::setFixtureId(int n) {
	this->extremidadMedia->setFixtureId(n);
	this->extremidadSuperior->setFixtureId(n);
	this->mano->setTextureId(n);
}

void Brazo::setCam(Camara* cam, glm::mat4 pr) {
	this->extremidadMedia->setCam(cam, pr);
	this->extremidadSuperior->setCam(cam, pr);
	this->mano->setCam(cam, pr);
}
